// 按钮显示与否
$(function () {
    //var permArray = $its.strToArray($TokenUtil.getPerm());
    //console.log(permArray);
    var aTagDiv = document.getElementById("buttonId");
    // var aTags = a.getElementsByTagName("a");
    //console.log(aTagDiv);
    // console.log(aTagDiv.getElementsByTagName("a")[0].getAttribute("isButton"));
    // var fnName = aTagDiv.getElementsByTagName("a")[0].getAttribute("isButton");
    // console.log(fnName);
    if (null != aTagDiv) {
        var aTags = aTagDiv.getElementsByTagName("a");
        //console.log(aTags);
        for (var i = 0; i < aTags.length; i++) {
            // console.log(aTags[i]);
            var fnName = aTags[i].getAttribute("isButton");
            var id = aTags[i].getAttribute("id");
            if (null != fnName && fnName!='') {
                // fnName
                //console.log(fnName);
                //console.log(id);
                //console.log(fnName.replace("(","('"+id+"',"));
                fnName = fnName.replace("(", "('" + id + "',");
                //console.log(fnName);
                // do it 动态调用
                eval('$its.' + fnName);
            }
        }
    }

});

/**
 * core method
 * 每个按钮的角色或权限只有一个，因为只对应一个请求路径
 * 就算前台赋予多个其它角色或权限标识，最终对应的后台请求地址只有一个
 * @type {{strToArray: (function(*): *), hasRole: $its.hasRole, hasPerm: $its.hasPerm}}
 */
var $its = {
    strToArray: function (str) {
        var array = str.split(',');
        return array;
    },
    hasRole: function (id, str) { // 动态调用
        // perm
        var permArray = $its.strToArray($TokenUtil.getPerm());
        //console.log(permArray);
        // need check
        if (str.indexOf(',') === -1) {
            // check one
            var flag = false;
            for (var i = 0; i < permArray.length; i++) {
                // todo:需要配合后台
                // check role
                if (permArray[i].indexOf('ROLE_') != -1) {
                    //console.log(permArray[i]);
                    var perm = permArray[i].substring(5, permArray[i].length);
                    if (perm == str) {
                        flag = true;
                        break;
                    } else {
                        flag = false;
                    }
                }
            }
            if (!flag) {
                $('#' + id).hide();
            }
        } else {
            console.log("按钮:hasRole()方法参数有误.");
        }
    },
    hasPerm: function (id, str) { // 动态调用
        // perm
        var permArray = $its.strToArray($TokenUtil.getPerm());
        //console.log(permArray);
        // need check
        if (str.indexOf(',') === -1) {
            // check one
            var flag = false;
            for (var i = 0; i < permArray.length; i++) {
                // todo:需要配合后台
                // check permission
                if (permArray[i] == str) {
                    flag = true;
                    break;
                } else {
                    flag = false;
                }
            }
            if (!flag) {
                $('#' + id).hide();
            }
        } else {
            console.log("按钮:hasPerm()方法参数有误.");
        }
    }
}